package com.online.edu.course.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 课程表
 * </p>
 *
 * @author world
 * @since 2021-07-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel("课程表")
public class Course implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    private Long id;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime gmtCreate;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private LocalDateTime gmtModified;

    /**
     * 状态(1:正常，0:禁用)
     */
    @ApiModelProperty("状态(1:正常，0:禁用)")
    private Integer statusId;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Integer sort;

    /**
     * 讲师用户编码
     */
    @ApiModelProperty("讲师用户编码")
    private Long lecturerUserNo;

    /**
     * 课程名称
     */
    @ApiModelProperty("课程名称")
    private String courseName;

    /**
     * 课程封面
     */
    @ApiModelProperty("课程封面")
    private String courseLogo;

    /**
     * 课程介绍ID
     */
    @ApiModelProperty("课程介绍ID")
    private String introduce;

    /**
     * 是否免费：1免费，0收费
     */
    @ApiModelProperty("是否免费：1免费，0收费")
    private Integer isFree;

    /**
     * 原价
     */
    @ApiModelProperty("原价")
    private BigDecimal courseOriginal;

    /**
     * 优惠价
     */
    @ApiModelProperty("优惠价")
    private BigDecimal courseDiscount;

    /**
     * 是否上架(1:上架，0:下架)
     */
    @ApiModelProperty("总课时数")
    private Integer isPutaway;

    /**
     * 总课时数
     */
    @ApiModelProperty("总课时数")
    private Integer periodTotal;

    /**
     * 课程结束时间(新增)
     */
    @ApiModelProperty("课程结束时间")
    private LocalDateTime endTime;

    /**
     * 课程开始时间(新增)
     */
    @ApiModelProperty("课程开始时间")
    private LocalDateTime startTime;

    /**
     * 逻辑状态(新增)
     */
    @ApiModelProperty("逻辑状态(0:正常；1:删除")
    @TableLogic
    private Integer logicalState;


}
